using Synapse.Framework.Pipe.Filters;

namespace Synapse.Framework.Pipe.BusinessObjects
{
    public abstract class _<T> : IBusinessObject
    {
        private T Value { get; set; }

        protected _(T value)
        {
            Value = value;
        }

        public static implicit operator _<T>(T d)
        {
            return new BusinessObjet<T>(d);
        }

        public static implicit operator T (_<T> d)
        {
            return d.Value;
        }
        
        public abstract IBusinessObject Accept(IFilter filter);
    }

  
}